package com.md.common.dto.page;

import java.io.Serializable;

/**
 * 功能描述：
 * 封装接收dataTables表格的查询请求参数。<br>
 * 页面传值分页对象，所以表格查询Dto、Vo都需要继承这个类。
 *
 * @author lujianping@oak168.com
 * @version 1.0
 * @date 2017/9/12 9:26
 * @since JDK 1.8
 */
public class RequestQuery implements Serializable {

    private static final long serialVersionUID = 6195588221718908914L;
    /**
     * 请求的次数，表格绘制显示的次数。
     * dataTables建议使用这个值，在业务中没有意义。
     * 每次前台的会自动传入，后台返回json数据的时候，也需要返回。
     * request请求参数，所传入进来的draw是多少那么服务器就返回多少。
     */
    private Integer draw = 0;

    /**
     * 从第几条记录开始查询
     */
    private int start;

    /**
     * 每页显示多少条记录
     */
    private int length;

    /**
     * 排序类型，ASC：升序，DESC：降序
     */
    private String orderType;

    /**
     * 排序的列，列字段名，表格那一列排序
     */
    private String orderColumn;

    /**
     * 排序的列，列索引，列索引从0开始
     */
    private int orderColumnNum;

    /**
     * 查询的关键字
     */
    private String queryKey;

    /**
     * 获取请求的次数，表格绘制显示的次数。
     *
     * @return 返回请求的次数，表格绘制显示的次数。
     */
    public Integer getDraw() {
        return draw;
    }


    /**
     * 设置请求的次数，表格绘制显示的次数。
     *
     * @param draw 请求的次数，表格绘制显示的次数。
     */
    public void setDraw(Integer draw) {
        this.draw = draw;
    }


    /**
     * 获取当前面数据
     *
     * @return 当前面数
     */
    public int getStart() {
        return start;
    }

    public void setStart(int start) {
        this.start = start;
    }


    /**
     * 获取每页显示多少条记录
     *
     * @return 返回每页显示多少条记录
     */
    public int getLength() {
        return length;
    }


    /**
     * 设置每页显示多少条记录
     *
     * @param length 每页显示多少条记录
     */
    public void setLength(int length) {
        this.length = length;
    }


    /**
     * 获取当前是第几页
     *
     * @return 返回当前是第几页
     */
    public int getPage() {
        return (start / length) + 1;
    }


    /**
     * 获取排序类型
     *
     * @return 返回排序类型
     */
    public String getOrderType() {
        return orderType;
    }


    /**
     * 设置排序类型
     *
     * @param orderType 排序类型
     */
    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }


    /**
     * 获取排序的列
     *
     * @return 排序的列名称
     */
    public String getOrderColumn() {
        return orderColumn;
    }


    /**
     * 设置排序的列
     *
     * @param orderColumn 排序的列名称
     */
    public void setOrderColumn(String orderColumn) {
        this.orderColumn = orderColumn;
    }


    /**
     * 获取排序的列索引
     * @return 排序的列索引
     */
    public int getOrderColumnNum() {
        return orderColumnNum;
    }


    /**
     * 设置排序的列索引
     * @param orderColumnNum 排序的列索引
     */
    public void setOrderColumnNum(int orderColumnNum) {
        this.orderColumnNum = orderColumnNum;
    }

    public String getQueryKey() {
        return queryKey;
    }

    public void setQueryKey(String queryKey) {
        this.queryKey = queryKey;
    }
}